﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;

namespace HuaskyWebAPI.Application.Entities;

/// <summary>
/// 数据更改后的处理逻辑（不是很通用，放在业务层）
/// </summary>
public class ChangeTrackHandler : IDisposable
{
    EntityEntry[] _changedEnties;
    public ChangeTrackHandler(DbContext db)
    {
        //构造函数中检测变更
        //SavedChanges事件后，变更检测已经不准了，但需要保存DB后才触发变更通知
        var changeTracker = db.ChangeTracker;
        _changedEnties = changeTracker.Entries()
                                      .Where(i => i.State != EntityState.Unchanged)
                                      .ToArray();
    }

    public void Dispose()
    {
        foreach (var item in _changedEnties)
        {
            
        }
    }
}
